/****************************************************
 * 
 * home soft 版权所有.
 * 
 *****************************************************/

package com.homesoft.runtime.metadata.modle.entity;

import com.homesoft.runtime.metadata.modle.DataType;
import com.homesoft.runtime.metadata.modle.IMetadataObject;

/**
 * @author lihg
 * @data   2012-9-15
 */
public interface IPropertyInfo extends  IMetadataObject {
    /// <summary>
    /// 获取或设置属性的数据类型
    /// </summary>
    DataType getDataType();
    void setDataType(DataType type);
    /// <summary>
    /// 获取或设置是否允许为空(对查询属性，该值无效）
    /// </summary>
    boolean isNullable();
    void setNullable(boolean nullable);
    /// <summary>
    /// 获取或设置是否是多语言属性
    /// </summary>
    boolean isMultilingual();
    void setMultilingual(boolean multilingual);

    /// <summary>
    /// 获取或设置所属的实体
    /// </summary>
    IEntityInfo getEntity();
    /// <summary>
    /// 获取是否是可更新的
    /// </summary>
    boolean isUpdateable();
    /// <summary>
    /// 获取是否是主键属性
    /// </summary>
    boolean isKey();
    /// <summary>
    /// 获取属性值是否自动生成
    /// </summary>
    boolean isAutoGenerate();
}
